#ifndef __CROSS_CAMERA
#define __CROSS_CAMERA

class CF_CORE_API CCF_Camera
{
protected:
  D3DXMATRIX m_result;
  D3DXMATRIX m_projection;
  D3DXMATRIX m_invertView;

  D3DXVECTOR3 m_position;
  D3DXVECTOR3 m_direction;
  D3DXVECTOR3 m_up;

  float m_filedOfView;
  float m_nearDistance;
  float m_farDistance;

public:
  CCF_Camera(void);
  ~CCF_Camera(void);

  void SetCamera( D3DXVECTOR3 pos, D3DXVECTOR3 dir, D3DXVECTOR3 up );

  D3DXVECTOR3 GetPosition();

  D3DXMATRIX* CalcViewMatrix();
  D3DXMATRIX* CalcProjectionMatrix();
  D3DXMATRIX* CalcInvertViewMatrix();
};

#endif